package org.lwj.logger.name.support;

import java.net.URL;

import org.lwj.logger.name.AppName;
import org.lwj.logger.util.Util;

public class JWarAppName implements AppName {

	public String name() {
		String name = null;
		URL url = ClassLoader.getSystemClassLoader().getResource("");
		if (url == null) {
			url = JWarAppName.class.getResource("");
		}
		String classFile = url.getPath();
		name = classFile;
		if (!Util.isEmpty(classFile)) {
			// 传统war项目
			// file:/webapps/web-test/WEB-INF/lib/sky-logger-1.0.0.jar!/org/sky/logger/name/support/
			int i = classFile.indexOf("WEB-INF");
			if (i > 0) {
				String s = classFile.substring(0, i - 1);
				int li = s.lastIndexOf('/');
				if (li != -1) {
					name = s.substring(li + 1);
				}
			} else {
				// /web-test/target/classes/
				i = classFile.indexOf("target");
				if (i > 0) {
					String s = classFile.substring(0, i - 1);
					int li = s.lastIndexOf('/');
					if (li != -1) {
						name = s.substring(li + 1);
					}
				} else {
					// file:/web-test-1.0.jar!/BOOT-INF/lib/sky-logger-1.0.0.jar!/org/sky/logger/name/support/
					i = classFile.indexOf("!/");
					if (i > 0) {
						String s = classFile.substring(0, i);
						int li = s.lastIndexOf('/');
						if (li != -1) {
							name = s.substring(li + 1);
						}
					}
				}
			}
		}
		return name;
	}

}
